package acwing._1_1AlgorithmBasic._4Math;
/**
 * @Project : AlgorithmLearning
 * @Package : ACWing._1_1AlgorithmBasic._4Math
 * @File : Q0870.java
 * @Author : WangRuoyu
 * @Date : 2023/4/4 14:45
 */

import java.io.*;
import java.util.ArrayList;
import java.util.HashMap;

public class Q0870 {

    static int divisorNum(int k) {
        ArrayList<Integer> list = new ArrayList<>();
        for (int i = 2; i <= k / i; ++i) {
            if (k % i == 0) {
                int s = 0;
                while (k % i == 0) {
                    s++;
                    k /= i;
                }
                list.add(s);
            }
        }
        if (k > 1) {
            list.add(1);
        }
        int res = 1;
        for (int i = 0; i < list.size(); ++i) {
            res *= (list.get(i) + 1);
        }
        return res;
    }

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter wr = new BufferedWriter(new OutputStreamWriter(System.out));
        String[] words = br.readLine().split(" ");
        int n = Integer.parseInt(words[0]);

        HashMap<Integer, Integer> map = new HashMap<>();
        for (int i = 0; i < n; ++i) {
            words = br.readLine().split(" ");
            int k = Integer.parseInt(words[0]);
            for (int j = 2; j <= k / j; ++j) {
                if (k % j == 0) {
                    if (!map.containsKey(j)) {
                        map.put(j, 0);
                    }
                    while (k % j == 0) {
                        map.put(j, map.get(j) + 1);
                        k /= j;
                    }
                }
            }
            if (k > 1) {
                if (!map.containsKey(k)) {
                    map.put(k, 0);
                }
                map.put(k, map.get(k) + 1);
            }
        }

        long res = 1;
        final long MOD = 1000000007;
        for (Integer s : map.values()) {
            res = res * (long) (s + 1) % MOD;
        }
        wr.write(res + "");
        wr.flush();
    }
}